﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using SMA.GENTEv1;
using Telerik.Web.UI;

public partial class Protegidos_Pessoas_Relatorios_prDemissoesDataBase : PageBase 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
                CarregarComboAno(rcbAno);
                CarregarComboMes(rcbMes);
                OcultarCampos(true);
            }
        }
        catch (Exception ex)
        {
            ExibirMensagem(true, ex.Message);
        }
    }

    #region Eventos
    protected void btnPesquisar_Click(object sender, EventArgs e)
    {
        try
        {
            Pesquisa();
            rgDemitidos.DataBind();
            OcultarCampos(false);
        }
        catch (Exception ex)
        {
            ExibirMensagem(true, ex.Message);
            OcultarCampos(true);
        }
    }

    protected void btnLimpar_Click(object sender, EventArgs e)
    {
        try
        {
            OcultarCampos(true);
        }
        catch (Exception ex)
        {
            lblResultado.Text = ex.Message;
        }
    }

    protected void rgDemitidos_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
    {
        Pesquisa();
    }

    protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)
    {
        Pesquisa();
        rgDemitidos.DataBind();
    }
    #endregion

    #region Métodos
    private void CarregarComboAno(RadComboBox combo)
    {
        try
        {
            PessoaDemissao pessoademissao = new PessoaDemissao();

            combo.DataSource = pessoademissao.CarregarComboAno(IdPrestador);
            combo.DataBind();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void CarregarComboMes(RadComboBox combo)
    {
        try
        {
            PessoaDemissao pessoademissao = new PessoaDemissao();

            combo.DataSource = pessoademissao.CarregarComboMes(IdPrestador);
            combo.DataBind();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void OcultarCampos(bool oculta)
    {
        trResultado.Visible = !oculta;
    }

    private void OcultarMsgPagina(bool oculta)
    {
        trMensagem.Visible = !oculta;
    }

    private void Pesquisa()
    {
        rgDemitidos.DataSource = CarregarPessoasDemitidas();
    }

    private List<PessoaDemissao> CarregarPessoasDemitidas()
    {
        try
        {
            PessoaDemissao pessoademissao = new PessoaDemissao();
            List<PessoaDemissao> listPessoaDemissao = new List<PessoaDemissao>();

            int mes = (rcbMes.SelectedValue != string.Empty) ? int.Parse(rcbMes.SelectedValue) : 0;
            int ano = (rcbAno.SelectedValue != string.Empty) ? int.Parse(rcbAno.SelectedValue) : 0;

            listPessoaDemissao = pessoademissao.SelectDemitidosDataBase(IdPrestador, mes, ano, true);

            return listPessoaDemissao;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void ExibirMensagem(bool _msgErro, string _textoMsg)
    {
        try
        {
            OcultarMsgPagina(false);
            if (_msgErro)
            {
                lblResultado.ForeColor = System.Drawing.Color.Red;
                lblResultado.Text = _textoMsg;
            }
            else
            {
                lblResultado.ForeColor = System.Drawing.Color.Black;
                lblResultado.Text = _textoMsg;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    #endregion
    
}
